<?php
	class Perfil_controller extends Base_controller 
	{
		
		function __construct($registry)
		{
			parent::__construct($registry);
		
			// Cargar models requeridos
			$this->registry->usuario_model = new Usuario_model();
			$this->registry->departamento_model = new Departamento_model();
			$this->registry->pais_model = new Pais_model();
			$this->registry->contrato_model = new Contrato_model();
			$this->registry->tecnico_tipo_servicio_model = new Tecnico_tipo_servicio_model();
			$this->registry->tipo_servicio_model = new Tipo_servicio_model();
		}
		
		function index()
		{	
			$usuario = get_user_auth();
			
			$this->registry->template->usuario = $this->registry->usuario_model->get($usuario['id']);

			$this->registry->template->departamentos = $this->registry->departamento_model->getAll();

			$this->registry->template->paises = $this->registry->pais_model->getAll();
			
			$this->registry->template->contratos = array();
			
			$this->registry->template->view = 'perfil';
			$this->registry->template->show('layout');
		}
		
		
		function ajaxValidatePassword()
		{
			$validateValue=$_REQUEST['fieldValue'];
			$validateId=$_REQUEST['fieldId'];
			
			$usuario = get_user_auth();
			
			$arrayToJs = array();
			$arrayToJs[0] = $validateId;
			
			if ($this->validarPasswordUsuario($usuario, $validateValue))
			{
				$arrayToJs[1] = true;
			}
			else
			{
				$arrayToJs[1] = false;
			}
			
			echo json_encode($arrayToJs);
		}
		
		
		function guardarPassword()
		{
			$usuariologueado = get_user_auth();
			
			$nuevoPassword = $_POST['pass_nuevo'];
			
			//obtengo usuario de la base.
			$usuario = $this->registry->usuario_model->get($usuariologueado['id']);
			//actualizo password
			$usuario['password'] = $nuevoPassword;
			
			$this->usuarioToModel($usuario);
			
			$this->registry->usuario_model->update($usuario['id']);
			
			//guardo usuario con datos actualizados en sesion
			set_user_auth($usuario);
			
			$this->index();
		}
		
		
		/**
		 *
		 * @param  $usuario
		 * @param  $password
		 * @return boolean
		 *
		 * Valida si el password (pasado por parametro) es igual al del usuario
		 * pasado por parametro.
		 */
		function validarPasswordUsuario($usuario, $password)
		{		
			if ($usuario['password'] == $password)
			{
				return true;
			}
			else return false;
		}
		
		function modificar()
		{
			$usuario = get_user_auth();
			
			$this->postToModelUsuario();
			
 			$this->registry->usuario_model->id = $usuario['id'];
 			
			$this->registry->usuario_model->update($usuario['id']);
			
			$usu_modificado = $this->registry->usuario_model->get($usuario['id']);
			
			//Seteo el usuario con valores modificados en sesion.
			set_user_auth($usu_modificado);
			
			$this->index();
		}
		
		/**
		 * Se mapean los valores del obtenidos del POST al model del
		 * usuario.
		 * El id se trata de manera diferente. Hay que setearlo por fuera de esta funcion.
		 */
		function postToModelUsuario()
		{
			$this->registry->usuario_model->documento = $_POST ["documento"];
			$this->registry->usuario_model->nombres = $_POST ["nombres"];
			$this->registry->usuario_model->apellidos = $_POST ["apellidos"];
			$this->registry->usuario_model->email = $_POST ["email"];
			$this->registry->usuario_model->password = $_POST ["password"];
			$this->registry->usuario_model->pais_fk = $_POST ["pais_fk"];
			$this->registry->usuario_model->departamento_fk = $_POST ["departamento_fk"];
			$this->registry->usuario_model->barrio = $_POST ["barrio"];
			$this->registry->usuario_model->direccion = $_POST ["direccion"];
			$this->registry->usuario_model->celular = $_POST ["celular"];
			$this->registry->usuario_model->tipo = $_POST ["tipo"];
			$this->registry->usuario_model->coordenadas = $_POST ["coordenadas"];
		}
		
		/**
		 * @param $usuario
		 * Se mapea el usuario pasado por parametro al modelo.
		 */
		function usuarioToModel($usuario)
		{
			$this->registry->usuario_model->id = $usuario['id'];
			$this->registry->usuario_model->documento = $usuario["documento"];
			$this->registry->usuario_model->nombres = $usuario["nombres"];
			$this->registry->usuario_model->apellidos = $usuario["apellidos"];
			$this->registry->usuario_model->email = $usuario["email"];
			$this->registry->usuario_model->password = $usuario["password"];
			$this->registry->usuario_model->pais_fk = $usuario["pais_fk"];
			$this->registry->usuario_model->departamento_fk = $usuario["departamento_fk"];
			$this->registry->usuario_model->barrio = $usuario["barrio"];
			$this->registry->usuario_model->direccion = $usuario["direccion"];
			$this->registry->usuario_model->celular = $usuario["celular"];
			$this->registry->usuario_model->tipo = $usuario["tipo"];
			$this->registry->usuario_model->coordenadas = $usuario["coordenadas"];
		}
	}
	
?>